Этот диалог в Access выглядит так:

Итак, нам нужно в ресурсы добавить диалоговую панель. Естественно связать с классом CDialogAuthor.

Наш диалог будет работать с DAO поэтому надо подключить заголовки.
// DialogAuthor.h : header file // #include "afxdao.h" ///////////////////////// // CDialogAuthor dialog ......
А описание самого диалога должно быть доступно для функций главного диалога программы.
//////////////////////////// // CBiblioDlg dialog #include "DialogAuthor.h" ......
Организуем запуск окна:
void CBiblioDlg::OnButtonContens()
{
CDialogAuthor cd;
cd.DoModal();
}
Все окно готово к эксплутации. Прежде чем двинуться дальше нам нужно создать базу данных. Это можно сделать двумя способами. Используя Access и программным путем. Будет делать программным путем. Мы должны при запуске программы проверить есть ли файл базы данных, а если нет, то создать его и не пугать пользователя. Вот так и поступим. Для начала запустим DAO.
////////////////////////////////
// CBiblioDlg message handlers
BOOL CBiblioDlg::OnInitDialog()
{
......
// TODO: Add extra initialization here
try
{
// при ошибке исключение
AfxDaoInit( );
}
catch(...)
{
AfxMessageBox("Error Dao Init");
return FALSE; // не удалось создать диалог
}
return TRUE; // return TRUE unless you set the focus to a control
}
Так же при запуске окна мы должны проверить существования файла базы данных, если нет его - создать. Сначала определение имени. В stdafx.h.
#endif // _AFX_NO_AFXCMN_SUPPORT
#define DATABASENAME "biblio"
//{{AFX_INSERT_LOCATION}}
При инициализации проверим и если вдруг нету ее базы данных создать.
BOOL CBiblioDlg::OnInitDialog()
{
......
// TODO: Add extra initialization here
try
{
// при ошибке исключение
AfxDaoInit( );
}
catch(...)
{
AfxMessageBox("Error Dao Init");
return FALSE; // не удалось создать диалог
}
CDaoDatabase db;
try
{
db.Open(DATABSENAME); // попытка открытия
}
catch(...)
{
try
{
db.Create(DATABASENAME); // может вернуть исключение
}
catch(...)
{
AfxMessageBox("Error Create Database");
return FALSE; // не удалось создать диалог
}
}
if (!db.IsOpen()) return FALSE;
db.Close();
return TRUE; // return TRUE unless you set the focus to a control
}